package com.ruoyi.finance.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 提成发货情况对象 t_commission_delivery_situation
 *
 * @author admin
 * @date 2023-10-19
 */
public class CommissionDeliverySituation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    private Long id;

    /**
     * PI号
     */
    @Excel(name = "PI号")
    private String piNo;

    /**
     * 总产品数
     */
    @Excel(name = "总产品数" , cellType = Excel.ColumnType.NUMERIC)
    private Long totalCount;

    /**
     * 当月发货数
     */
    @Excel(name = "当月发货数" , cellType = Excel.ColumnType.NUMERIC)
    private Long deliveryCount;

    /**
     * 之前发货数
     */
    @Excel(name = "之前发货数" , cellType = Excel.ColumnType.NUMERIC)
    private Long beforeCount;

    /**
     * 未发货数
     */
    @Excel(name = "未发货数" , cellType = Excel.ColumnType.NUMERIC)
    private Long undeliveryCount;

    /**
     * 发货状态(0未发,1已发)
     */
    @Excel(name = "发货状态" , readConverterExp = "0=未发货,1=已发货")
    private Integer deliveryStatus;

    /**
     * 出/退库日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出/退库年月" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date storageDate;

    /**
     * 核算状态 0=未核算,1=本月核算,2=之前核算过
     */
    @Excel(name = "是否之前核算过" , readConverterExp = "0=否,1=否,2=是")
    private Integer checkStatus;

    /**
     * 核算月份
     */
    //@Excel(name = "核算月份")
    private String checkMonth;

    /**
     * 是否已收款
     */
    @Excel(name = "收款状态" , readConverterExp = "0=未回款,1=已回款")
    private Integer receiptStatus;

    /**
     * 收款金额
     */
    //@Excel(name = "收款金额" , cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal receiptPrice;

    /**
     * 核算年月
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "核算年月" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date commissionDate;

    /**
     * 查询类型
     */
    private Integer searchType;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setPiNo(String piNo) {
        this.piNo = piNo;
    }

    public String getPiNo() {
        return piNo;
    }

    public void setTotalCount(Long totalCount) {
        this.totalCount = totalCount;
    }

    public Long getTotalCount() {
        return totalCount;
    }

    public void setDeliveryCount(Long deliveryCount) {
        this.deliveryCount = deliveryCount;
    }

    public Long getDeliveryCount() {
        return deliveryCount;
    }

    public void setBeforeCount(Long beforeCount) {
        this.beforeCount = beforeCount;
    }

    public Long getBeforeCount() {
        return beforeCount;
    }

    public void setUndeliveryCount(Long undeliveryCount) {
        this.undeliveryCount = undeliveryCount;
    }

    public Long getUndeliveryCount() {
        return undeliveryCount;
    }

    public void setDeliveryStatus(Integer deliveryStatus) {
        this.deliveryStatus = deliveryStatus;
    }

    public Integer getDeliveryStatus() {
        return deliveryStatus;
    }

    public void setStorageDate(Date storageDate) {
        this.storageDate = storageDate;
    }

    public Date getStorageDate() {
        return storageDate;
    }

    public void setCheckStatus(Integer checkStatus) {
        this.checkStatus = checkStatus;
    }

    public Integer getCheckStatus() {
        return checkStatus;
    }

    public void setCheckMonth(String checkMonth) {
        this.checkMonth = checkMonth;
    }

    public String getCheckMonth() {
        return checkMonth;
    }

    public void setCommissionDate(Date commissionDate) {
        this.commissionDate = commissionDate;
    }

    public Date getCommissionDate() {
        return commissionDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id" , getId())
            .append("piNo" , getPiNo())
            .append("totalCount" , getTotalCount())
            .append("deliveryCount" , getDeliveryCount())
            .append("beforeCount" , getBeforeCount())
            .append("undeliveryCount" , getUndeliveryCount())
            .append("deliveryStatus" , getDeliveryStatus())
            .append("storageDate" , getStorageDate())
            .append("checkStatus" , getCheckStatus())
            .append("checkMonth" , getCheckMonth())
            .append("commissionDate" , getCommissionDate())
            .append("remark" , getRemark())
            .append("updateTime" , getUpdateTime())
            .toString();
    }

    public Integer getSearchType() {
        return searchType;
    }

    public void setSearchType(Integer searchType) {
        this.searchType = searchType;
    }

    public BigDecimal getReceiptPrice() {
        return receiptPrice;
    }

    public void setReceiptPrice(BigDecimal receiptPrice) {
        this.receiptPrice = receiptPrice;
    }

    public Integer getReceiptStatus() {
        return receiptStatus;
    }

    public void setReceiptStatus(Integer receiptStatus) {
        this.receiptStatus = receiptStatus;
    }
}
